home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / prnter_2.arc / IDSPRISM.BAS < prev    next >
BASIC Source File  |  1983-01-23  |  13KB  |  230 lines

  1. 500 'PRISM.BAS Vers 1.1. This program is the property of J.A. McKee, 1300 W
  2. 510 'Rahn Road, Dayton, Ohio 45459, 513-434-3893.  Permission to copy is granted
  3. 520 'providing this notice is retained and no costs except media are charged.
  4. 530 'This program is used to initialize the IDS Prism color printer. Speed is
  5. 535 'increased 10-fold by compiling. Requires > 64 kb. Not maintained.
  6. 540 'Initialization parameters include:
  7. 550 '-Select/Deselect
  8. 560 '-Mode: Normal, Expanded, Graphics
  9. 570 '-Ribbon Type: Black, Primary, Process
  10. 580 '-Justify on/off
  11. 590 '-Font selection, including international fonts
  12. 600 '-Style: Correspondence/Draft
  13. 610 '-Spacing: Fixed/Proportional
  14. 620 '-Left/Right Margins
  15. 630 '-Characters/inch
  16. 640 '-Horizontal and vertical tabs.  Spaced equally or unequally
  17. 650 '-Form length. Print length
  18. 660 '-Lines/inch
  19. 670 '-Superscript/subscript advance
  20. 680 'with two displays.
  21. 690 'Parameter files can be saved and reused in subsequent runs.
  22. 700 'The Prism initialization file can be written directly to the printer or
  23. 710 'saved for later use (use COPY to initialize printer with a saved disk file)
  24. 2000 '
  25. 2010 DIM E%(20),F%(20),O%(20),O1%(20),O(20)
  26. 2020 GOSUB 16400:GOSUB 15800
  27. 2030 COLOR C0%,B0%,B0%
  28. 2040 KEY OFF
  29. 6000 '
  30. 6010 GOSUB 15200:COLOR C2%,B2%:LOCATE 1,26:PRINT " PRISM PRINTER INITIALIZATION ":COLOR C0%,B0%
  31. 6020 LOCATE 2,3:PRINT "This program provides initialization for a Prism printer.";
  32. 6030 LOCATE 3,6:PRINT "- The Prism Parameter File (default extension .DAT) contains values shown";
  33. 6040 LOCATE 4,6:PRINT "  in the Prism Parameter Menu. An old file can be used to initialize this";
  34. 6050 LOCATE 5,6:PRINT "  menu (Option A) or a new file of current menu values can be saved for";
  35. 6060 LOCATE 6,6:PRINT "  later use (Option B).";
  36. 6070 LOCATE 7,6:PRINT "- The Prism Initialization File (default extension .PRS) uses values in";
  37. 6080 LOCATE 8,6:PRINT "  the current Prism Parameter Menu to initialize the printer (Option C).";
  38. 6090 LOCATE 9,6:PRINT "  This file can be saved to initialize the printer without running this";
  39. 6100 LOCATE 10,6:PRINT "  program (Option D). To initialize the printer without running this";
  40. 6110 LOCATE 11,6:PRINT "  program, use the saved file with COPY filnam LPTn:";
  41. 6120 LOCATE 12,6:PRINT "- The default printer device is LPT1.";
  42. 6130 O8$="A Read old Parameter File   C Write Init File to Printer  E Modify Init values"
  43. 6140 O9$="B Write new Parameter File  D Write Init File to Disk     X EXIT this program "
  44. 6150 O7$="Select option:":GOSUB 30000:
  45. 6180 IF O$<"A" OR O$>"E" AND O$<>"X" THEN GOSUB 30200:GOTO 6180
  46. 6190 IF O$="X" THEN CLOSE:END
  47. 6210 IF O$="E" THEN GOSUB 20000:GOTO 6000
  48. 6220 O9$="":LOCATE 14,2:PRINT SPACE$(78);:LOCATE 15,2:PRINT SPACE$(78);
  49. 6230 G%=ASC(O$):ON G%-64 GOSUB 6800,6400,7200,7400
  50. 6240 GOSUB 30220:GOTO 6130
  51. 6250 STOP
  52. 6400 '
  53. 6410 O1$=DEV2$:O2$=FILNAM2$:O3$=EXT2$:O8$="Write new Parameter File":O7$="Enter output file name ["+O1$+":"+O2$+"."+O3$+"]:":GOSUB 30000
  54. 6420 O1$=DEV2$:GOSUB 32000:FILE2$=O$
  55. 6430 ON ERROR GOTO 6640
  56. 6440 OPEN FILE2$ AS #U2% LEN=16
  57. 6450 FIELD #U2%,16 AS U116$:FIELD #U2%,8 AS U18$,8 AS U28$:FIELD #U2%,4 AS U14$,4 AS U24$,4 AS U34$,4 AS U44$
  58. 6460 FIELD #U2%,2 AS U12$,2 AS U22$,2 AS U32$,2 AS U42$,2 AS U52$,2 AS U62$,2 AS U72$,2 AS U82$:FIELD #U2%,1 AS U11$,1 AS U21$,1 AS U31$,1 AS U41$
  59. 6470 O1%=VAL(B$):O2%=VAL(C$):O3%=VAL(D$):O4%=VAL(JL$):O5%=VAL(JR$):O6%=VAL(L1$):O7%=VAL(L2$):O8%=VAL(P$):O9%=VAL(R$)
  60. 6480 LSET U12$=MKI$(O1%):LSET U22$=MKI$(O2%):LSET U32$=MKI$(O3%):LSET U42$=MKI$(O4%):LSET U52$=MKI$(O5%):LSET U62$=MKI$(O6%):LSET U72$=MKI$(O7%):LSET U82$=MKI$(O8%):PUT #U2%,1
  61. 6490 LSET U12$=MKI$(O9%):LSET U22$=MKI$(LR%):LSET U24$=LSEL$:LSET U34$=MKS$(LCPI):LSET U44$=MKS$(E1):PUT #U2%,2
  62. 6500 LSET U14$=LJUST$:LSET U24$=MKS$(LB):LSET U34$=MKS$(LC):LSET U44$=MKS$(LD):PUT #U2%,3
  63. 6510 LSET U14$=LE$:LSET U24$=LF$:LSET U34$=MKS$(LJL):LSET U44$=MKS$(LJR):PUT #U2%,4
  64. 6520 LSET U11$=SEL$:LSET U21$=MODE$:LSET U31$=CPI$:LSET U41$=SP$:LSET U24$=MKS$(LL1):LSET U34$=MKS$(LL2):LSET U44$=MKS$(LP):PUT #U2%,5
  65. 6530 LSET U11$=JUST$:LSET U21$=Q$:LSET U31$=Q2$:LSET U28$=LMODE$:PUT #U2%,6
  66. 6540 LSET U18$=LE1$:LSET U28$=LF1$:PUT #U2%,7
  67. 6550 LSET U18$=LQ$:LSET U28$=LQ1$:PUT #U2%,8
  68. 6560 LSET U116$=LSP$:PUT #U2%,9
  69. 6570 LSET U116$=LR$:PUT #U2%,10
  70. 6580 LSET U12$=MKI$(E%(0)):LSET U22$=MKI$(E%(1)):LSET U32$=MKI$(E%(2)):LSET U42$=MKI$(E%(3)):LSET U52$=MKI$(E%(4)):LSET U62$=MKI$(E%(5)):LSET U72$=MKI$(E%(6)):LSET U82$=MKI$(E%(7)):PUT #U2%,11
  71. 6590 LSET U12$=MKI$(F%(0)):LSET U22$=MKI$(F%(1)):LSET U32$=MKI$(F%(2)):LSET U42$=MKI$(F%(3)):LSET U52$=MKI$(F%(4)):LSET U62$=MKI$(F%(5)):LSET U72$=MKI$(F%(6)):LSET U82$=MKI$(F%(7)):PUT #U2%,12
  72. 6600 LSET U12$=MKI$(F%(8)):LSET U22$=MKI$(F%(9)):LSET U32$=MKI$(F%(10)):LSET U42$=MKI$(F%(11)):LSET U52$=MKI$(F%(12)):LSET U62$=MKI$(F%(13)):LSET U72$=MKI$(F%(14)):LSET U82$=MKI$(F%(15)):PUT #U2%,13
  73. 6610 LSET U12$=MKI$(F%(16)):LSET U22$=MKI$(F%(17)):LSET U32$=MKI$(F%(18)):LSET U42$=MKI$(F%(19)):LSET U52$=MKI$(F%(20)):LSET U44$=MKS$(F1):PUT #U2%,14
  74. 6620 ON ERROR GOTO 0
  75. 6630 CLOSE #U2%:RETURN
  76. 6640 O6$="Output device full or illegal file name or device."
  77. 6650 GOSUB 30200:RESUME 6620
  78. 6800 '
  79. 6810 O1$=DEV2$:O2$=FILNAM2$:O3$=EXT2$:O8$="Read old Parameter File":O7$="Enter input file name ["+O1$+":"+O2$+"."+O3$+"]:":GOSUB 30000
  80. 6820 O1$=DEV2$:GOSUB 32000:FILE2$=O$
  81. 6830 ON ERROR GOTO 7070
  82. 6840 OPEN FILE2$ FOR INPUT AS #U2%:CLOSE #U2%
  83. 6850 OPEN FILE2$ AS #U2% LEN=16
  84. 6860 FIELD #U2%,16 AS U116$:FIELD #U2%,8 AS U18$,8 AS U28$:FIELD #U2%,4 AS U14$,4 AS U24$,4 AS U34$,4 AS U44$
  85. 6870 FIELD #U2%,2 AS U12$,2 AS U22$,2 AS U32$,2 AS U42$,2 AS U52$,2 AS U62$,2 AS U72$,2 AS U82$:FIELD #U2%,1 AS U11$,1 AS U21$,1 AS U31$,1 AS U41$
  86. 6880 GET #U2%,1:O1%=CVI(U12$):O2%=CVI(U22$):O3%=CVI(U32$):O4%=CVI(U42$):O5%=CVI(U52$):O6%=CVI(U62$):O7%=CVI(U72$):O8%=CVI(U82$)
  87. 6890 B$=MID$(STR$(O1%),2,LEN(STR$(O1%))):C$=MID$(STR$(O2%),2,LEN(STR$(O2%))):JL$=MID$(STR$(O4%),2,LEN(STR$(O4%))):D$=STR$(O3%):IF O3%>=0 THEN D$=MID$(D$,2,LEN(D$))
  88. 6900 JR$=MID$(STR$(O5%),2,LEN(STR$(O5%))):L1$=MID$(STR$(O6%),2,LEN(STR$(O6%))):L2$=MID$(STR$(O7%),2,LEN(STR$(O7%))):P$=MID$(STR$(O8%),2,LEN(STR$(O8%)))
  89. 6910 GET #U2%,2:O9%=CVI(U12$):LR%=CVI(U22$):LSEL$=MID$(U24$,1,3):LCPI=CVS(U34$):R$=MID$(STR$(O9%),2,LEN(STR$(O9%))):E1=CVS(U44$)
  90. 6920 GET #U2%,3:LJUST$=MID$(U14$,1,3):LB=CVS(U24$):LC=CVS(U34$):LD=CVS(U44$)
  91. 6930 GET #U2%,4:LE$=MID$(U14$,1,3):LF$=MID$(U24$,1,3):LJL=CVS(U34$):LJR=CVS(U44$)
  92. 6940 GET #U2%,5:SEL$=U11$:MODE$=U21$:CPI$=U31$:SP$=U41$:LL1=CVS(U24$):LL2=CVS(U34$):LP=CVS(U44$)
  93. 6950 GET #U2%,6:JUST$=U11$:Q$=U21$:Q2$=U31$:LMODE$=U28$
  94. 6960 GET #U2%,7:LE1$=MID$(U18$,1,6):LF1$=MID$(U28$,1,6)
  95. 6970 GET #U2%,8:LQ$=MID$(U18$,1,7):LQ1$=MID$(U28$,1,7)
  96. 6980 GET #U2%,9:LSP$=MID$(U116$,1,12)
  97. 6990 GET #U2%,10:LR$=MID$(U116$,1,14)
  98. 7000 GET #U2%,11:E%(0)=CVI(U12$):E%(1)=CVI(U22$):E%(2)=CVI(U32$):E%(3)=CVI(U42$):E%(4)=CVI(U52$):E%(5)=CVI(U62$):E%(6)=CVI(U72$):E%(7)=CVI(U82$)
  99. 7010 GET #U2%,12:F%(0)=CVI(U12$):F%(1)=CVI(U22$):F%(2)=CVI(U32$):F%(3)=CVI(U42$):F%(4)=CVI(U52$):F%(5)=CVI(U62$):F%(6)=CVI(U72$):F%(7)=CVI(U82$)
  100. 7020 GET #U2%,13:F%(8)=CVI(U12$):F%(9)=CVI(U22$):F%(10)=CVI(U32$):F%(11)=CVI(U42$):F%(12)=CVI(U52$):F%(13)=CVI(U62$):F%(14)=CVI(U72$):F%(15)=CVI(U82$)
  101. 7030 GET #U2%,14:F%(16)=CVI(U12$):F%(17)=CVI(U22$):F%(18)=CVI(U32$):F%(19)=CVI(U42$):F%(20)=CVI(U52$):F1=CVS(U44$)
  102. 7040 GOSUB 25600:GOSUB 25800
  103. 7050 ON ERROR GOTO 0
  104. 7060 CLOSE #U2%:RETURN
  105. 7070 O6$="Input File not found or illegal filename or device. Strike ENTER to continue"
  106. 7080 GOSUB 30200:RESUME 7050
  107. 7200 '
  108. 7210 O1$=DEV0$:O8$="Write Initialization File to Printer":O7$="Enter printer device name ["+O1$+":] :":GOSUB 30000
  109. 7220 IF LEN(O$)>0 AND LEN(O$)<4 THEN GOSUB 30200:GOTO 7220
  110. 7230 IF LEN(O$)=0 THEN O$=DEV0$
  111. 7240 O1$=O$:O%=INSTR(O1$,":"):IF O%<>0 THEN O1$=MID$(O1$,1,4)
  112. 7250 O1$=O1$+":"
  113. 7260 ON ERROR GOTO 7310
  114. 7270 OPEN O1$ AS #U1%:WIDTH #U1%,255
  115. 7280 GOSUB 11000
  116. 7290 ON ERROR GOTO 0
  117. 7300 CLOSE #U1%:RETURN
  118. 7310 O6$="Printer fault or illegal device. Strike ENTER to continue."
  119. 7320 GOSUB 30200:RESUME 7290
  120. 7400 '
  121. 7410 O1$=DEV2$:O2$=FILNAM1$:O3$=EXT1$:O8$="Write Initialization File to disk":O7$="Enter output Initialization File name ["+O1$+":"+O2$+"."+O3$+"]:":GOSUB 30000
  122. 7420 O1$=DEV1$:GOSUB 32000:FILE2$=O$
  123. 7430 ON ERROR GOTO 7480
  124. 7440 OPEN FILE2$ FOR OUTPUT AS #U1%
  125. 7450 GOSUB 11000
  126. 7460 ON ERROR GOTO 0
  127. 7470 CLOSE #U1%:RETURN
  128. 7480 GOSUB 30200:RESUME 7460
  129. 11000 '
  130. 11010 ON ERROR GOTO 11160
  131. 11020 PRINT #U1%,SEL$;MODE$;CPI$;SP$;JUST$;
  132. 11030 PRINT #U1%,ESC$;X$;"J";X$;JL$;X$;JR$;X$;Z$;
  133. 11040 PRINT #U1%,ESC$;X$;"L";X$;L1$;X$;L2$;X$;Z$;
  134. 11050 PRINT #U1%,ESC$;X$;"B";X$;B$;X$;Z$;
  135. 11060 PRINT #U1%,ESC$;X$;"C";X$;C$;X$;Z$;
  136. 11070 PRINT #U1%,ESC$;X$;"D";X$;D$;X$;Z$;
  137. 11080 PRINT #U1%,ESC$;X$;"E";X$;E$;X$;Z$;
  138. 11090 PRINT #U1%,ESC$;X$;"F";X$;F$;X$;Z$;
  139. 11100 PRINT #U1%,ESC$;X$;"P";X$;P$;X$;Z$;
  140. 11110 PRINT #U1%,ESC$;X$;"Q";X$;Q$;X$;Z$;
  141. 11130 PRINT #U1%,ESC$;X$;"R";X$;R$;X$;Z$;
  142. 11140 ON ERROR GOTO 0
  143. 11150 RETURN
  144. 11160 O6$="Printer or device fault. Strike ENTER to exit"
  145. 11170 GOSUB 30200:RESUME 11140
  146. 15000 '
  147. 15010 GOSUB 15200
  148. 15020 COLOR C0%,B0%:LOCATE 2,2:PRINT L1A$;:LOCATE 3,2:PRINT L2A$;:LOCATE 4,2:PRINT L3$;:LOCATE 5,2:PRINT L4$;:LOCATE 6,2:PRINT L5$;
  149. 15030 LOCATE 7,2:PRINT L6$;:LOCATE 8,2:PRINT L7$;:LOCATE 9,2:PRINT L8$;:LOCATE 10,2:PRINT L9$;:LOCATE 11,2:PRINT L10$;:LOCATE 12,2:PRINT L11$;
  150. 15040 COLOR C3%,B3%:GOSUB 15410:GOSUB 15550:GOSUB 15630:GOSUB 15420:GOSUB 15560:GOSUB 15640:GOSUB 15430:GOSUB 15570:GOSUB 15650
  151. 15050 GOSUB 15440:GOSUB 15580:GOSUB 15660:GOSUB 15450:GOSUB 15590:GOSUB 15670:GOSUB 15460:GOSUB 15600:GOSUB 15680
  152. 15060 GOSUB 15470:GOSUB 15610:GOSUB 15690:GOSUB 15480:GOSUB 15490:GOSUB 15510
  153. 15070 COLOR C11%,B11%:GOSUB 15700:RETURN
  154. 15200 '
  155. 15210 COLOR C10%,B10%:CLS:LOCATE 1,1:PRINT CHR$(218)+STRING$(78,196)+CHR$(191)
  156. 15220 FOR O%=2 TO 15:LOCATE O%,1:PRINT CHR$(179):LOCATE O%,80:PRINT CHR$(179):NEXT O%
  157. 15230 LOCATE 13,1:PRINT CHR$(195)+STRING$(78,196)+CHR$(180)
  158. 15240 LOCATE 16,1:PRINT CHR$(192)+STRING$(78,196)+CHR$(217):RETURN
  159. 15400 '
  160. 15410 LOCATE 2,11:PRINT LSEL$;:RETURN
  161. 15420 LOCATE 3,9:PRINT LMODE$;:RETURN
  162. 15430 LOCATE 4,11:PRINT LQ1$;:RETURN
  163. 15440 LOCATE 5,10:PRINT LQ$;:RETURN
  164. 15450 LOCATE 6,12:PRINT LJUST$;:RETURN
  165. 15460 LOCATE 7,13:PRINT USING "##";LR%;:RETURN
  166. 15470 LOCATE 8,10:PRINT LR$;:RETURN
  167. 15480 LOCATE 9,12:PRINT LSP$;:RETURN
  168. 15490 FOR O%=0 TO 7:O(O%)=E%(O%)/48:NEXT O%
  169. 15500 LOCATE 10,19:PRINT USING L13$;O(0),O(1),O(2),O(3),O(4),O(5),O(6),O(7):RETURN
  170. 15510 FOR O%=0 TO 20:O%(O%)=CINT(LCPI*((F%(O%)-VAL(JL$))/120)):IF O%(O%)<0 THEN O%(O%)=0
  171. 15520 NEXT O%
  172. 15530 LOCATE 11,19:PRINT USING L14$;O%(0),O%(1),O%(2),O%(3),O%(4),O%(5),O%(6),O%(7),O%(8),O%(9),O%(10)
  173. 15540 LOCATE 12,19:PRINT USING L14$;O%(11),O%(12),O%(13),O%(14),O%(15),O%(16),O%(17),O%(18),O%(19),O%(20):RETURN
  174. 15550 LOCATE 2,39:PRINT USING L12$;LJL;:RETURN
  175. 15560 LOCATE 3,40:PRINT USING L12$;LJR;:RETURN
  176. 15570 LOCATE 4,37:PRINT USING L12$;LCPI;:RETURN
  177. 15580 RETURN
  178. 15590 LOCATE 6,44:PRINT USING "###";LP%;:RETURN
  179. 15600 LOCATE 7,36:PRINT LF$;:RETURN
  180. 15610 LOCATE 8,38:PRINT LF1$;:RETURN
  181. 15630 LOCATE 2,67:PRINT USING L12$;LL1;:RETURN
  182. 15640 LOCATE 3,68:PRINT USING L12$;LL2;:RETURN
  183. 15650 LOCATE 4,66:PRINT USING L12$;LB;:RETURN
  184. 15660 LOCATE 5,67:PRINT USING L12$;LD;:RETURN
  185. 15670 LOCATE 6,65:PRINT USING L12$;LC;:RETURN
  186. 15680 LOCATE 7,64:PRINT LE$;:RETURN
  187. 15690 LOCATE 8,66:PRINT LE1$;:RETURN
  188. 15700 LOCATE 9,53:PRINT "X EXIT to main menu";:RETURN
  189. 15800 '
  190. 15810 SEL$=CHR$(17):LSEL$="On"
  191. 15820 MODE$=CHR$(2):LMODE$="Normal"
  192. 15830 CPI$=CHR$(30):LCPI=12
  193. 15840 SP$=CHR$(6):LSP$="Fixed"
  194. 15850 JUST$=CHR$(5):LJUST$="Off"
  195. 15860 B$="8":LB=6
  196. 15870 O$=STR$(CINT(VAL(B$)/2))
  197. 15880 C$=MID$(O$,2,LEN(O$)):LC=.5
  198. 15890 D$="-"+C$:LD=.5
  199. 15910 E1=0:LE1$="N/A   "
  200. 15920 E$="0":LE$="Off":
  201. 15940 F1=8:LF1$="Even"
  202. 15950 F$="0":LF$="On"
  203. 15960 JL$="120":LJL=1
  204. 15970 JR$="920":LJR=7.67
  205. 15980 LJR1=80
  206. 15990 L1$="528":LL1=11
  207. 16000 L2$="504":LL2=10.5
  208. 16010 P$="0":LP%=0
  209. 16020 Q$="4":LQ$="Black":LQ1$="Process"
  210. 16030 Q2$="0"
  211. 16040 R$="1":LR$="Correspondence":LR%=1
  212. 16050 GOSUB 25400:GOSUB 25600
  213. 16060 L1A$="A Select=              I Left Margin=      inches  Q Form Length=      inches"
  214. 16070 L2A$="B Mode=                J Right Margin=      inches R Print Length=      inches"
  215. 16080 L3$="C Ribbon=              K Char/inch=      chars     S Lines/inch=      lines"
  216. 16090 L4$="D Color=               L (Reserved)                T Superscript=      lines"
  217. 16100 L5$="E Justify=             M Inter-Ch Spacing=         U Subscript=      lines"
  218. 16110 L6$="F Font No.=            N Hor Tabs=                 V Ver Tabs="
  219. 16120 L7$="G Style=               O HT Spacing=               W VT Spacing="
  220. 16130 L8$="H Spacing=             P Toggle Dual Displays"
  221. 16140 L9$="Ver Tb in inches:                                                    (Up to 8)"
  222. 16150 L10$="Hor Tb in chars:"
  223. 16160 L11$="                                                                    (Up to 21)"
  224. 16170 L12$="##.##"
  225. 16180 L13$="##.##;##.##;##.##;##.##;##.##;##.##;##.##;##.##"
  226. 16190 L14$="####;####;####;####;####;####;####;####;####;####;####;####;"
  227. 16200 RETURN
  228. 16400 '
  229. 16410 T%=0:DEF SEG=0:IF (PEEK(&H410) AND &H30)<>&H30 THEN T%=1
  230. 16420 DEF SEG:DEV0$="L